package com.test.wog.dao;

import com.test.wog.bean.RegularBus;

import java.util.List;

/**
 * 班车信息的DAO层接口
 *
 * @author linxun@buaa.edu.cn
 * @since 2020-01-27
 * @see RegularBus
 */
public interface RegularBusDAO {
    /**
     * 根据起点名称、终点名称、人员类型搜索相应班车
     *
     * @param ori  起点名称
     * @param dest 终点名称
     * @param type 人员类型
     * @return 起点为ori，终点为dest，人员类型为type的全部班车
     */
    List<RegularBus> getRegularBusByOriDestType(String ori, String dest, String type);

    /**
     * 根据终点名称、人员类型搜索相应班车
     *
     * @param dest 终点名称
     * @param type 人员类型
     * @return 终点为dest，人员类型为type的全部班车
     */
    List<RegularBus> getRegularBusByDestType(int dest, String type);

    /**
     * 根据班车ID、人员类型搜索相应班车
     *
     * @param id   班车ID
     * @param type 人员类型
     * @return 编号为id，人员类型为type的全部班车
     */
    List<RegularBus> getRegularBusByIdAndType(int id, String type);

    /**
     * 根据班车id、发车时间搜索相应班车
     *
     * @param id        班车id
     * @param startTime 班车发车时间
     * @return 编号为id，发车时间为startTime的全部班车
     */
    List<RegularBus> getRegularBusByIdAndTime(int id, String startTime);

    /**
     * 根据人员类型查询班车
     *
     * @param type 人员类型
     * @return 人员类型为type的全部班车
     */
    List<RegularBus> getRegularBusByType(String type);

    /**
     * 根据班车id查询所有班车
     *
     * @param id 班车编号
     * @return 编号为id的全部班车
     */
    List<RegularBus> getRegularBusById(int id);

    /**
     * 添加班车
     *
     * @param regularBus 班车实体
     * @return 添加的数量
     */
    int insertRegularBus(RegularBus regularBus);
}
